using System;
using MicrosoftResearch.Infer;
using MicrosoftResearch.Infer.Distributions;
using MicrosoftResearch.Infer.Collections;
using MicrosoftResearch.Infer.Factors;

namespace MicrosoftResearch.Infer.Models.User
{
	/// <summary>
	/// Class for performing inference in model 'Model' using algorithm 'ExpectationPropagation'.
	/// </summary>
	/// <remarks>
	/// The easiest way to use this class is to wrap an instance in a CompiledAlgorithm object and use
	/// the methods on CompiledAlgorithm to set parameters and execute inference.
	/// 
	/// If you instead wish to use this class directly, you must perform the following steps:
	/// 1) Create an instance of the class
	/// 2) Set the value of any externally-set fields e.g. data, priors
	/// 3) Call the Reset() method
	/// 4) Call the Initialise() method once
	/// 5) Call the Update() method multiple times  - each call performs one iteration of inference
	/// 6) Use the XXXMarginal() methods to retrieve posterior marginals for different variables.
	/// 
	/// Generated by Infer.NET 2.3 beta 4 at 19:26 on 29 May 2010.
	/// </remarks>
	public class Model11_EP : IIterativeProcess
	{
		#region Fields
		// Messages from uses of 'vbool35'
		public Bernoulli[] vbool35_uses_B;
		// The constant 'vBernoulli43'
		public Bernoulli vBernoulli43;
		// Message from definition of 'vbool35'
		public Bernoulli vbool35_F;
		// Messages from uses of 'vbool27'
		public Bernoulli[] vbool27_uses_B;
		// The constant 'vBernoulli35'
		public Bernoulli vBernoulli35;
		// Message from definition of 'vbool27'
		public Bernoulli vbool27_F;
		// Messages from uses of 'vbool301'
		public Bernoulli[] vbool301_uses_B;
		// Message from definition of 'vbool301'
		public Bernoulli vbool301_F;
		// Messages from uses of 'vbool139'
		public Bernoulli[] vbool139_uses_B;
		// The constant 'vBernoulli147'
		public Bernoulli vBernoulli147;
		// Message from definition of 'vbool139'
		public Bernoulli vbool139_F;
		// Messages from uses of 'vbool365'
		public Bernoulli[] vbool365_uses_B;
		// Message from definition of 'vbool365'
		public Bernoulli vbool365_F;
		// Messages from uses of 'vbool123'
		public Bernoulli[] vbool123_uses_B;
		// The constant 'vBernoulli131'
		public Bernoulli vBernoulli131;
		// Message from definition of 'vbool123'
		public Bernoulli vbool123_F;
		// Messages from uses of 'vbool349'
		public Bernoulli[] vbool349_uses_B;
		// Message from definition of 'vbool349'
		public Bernoulli vbool349_F;
		// Messages from uses of 'vbool131'
		public Bernoulli[] vbool131_uses_B;
		// The constant 'vBernoulli139'
		public Bernoulli vBernoulli139;
		// Message from definition of 'vbool131'
		public Bernoulli vbool131_F;
		// Messages from uses of 'vbool357'
		public Bernoulli[] vbool357_uses_B;
		// Message from definition of 'vbool357'
		public Bernoulli vbool357_F;
		// Messages from uses of 'vbool100'
		public Bernoulli[] vbool100_uses_B;
		// The constant 'vBernoulli108'
		public Bernoulli vBernoulli108;
		// Message from definition of 'vbool100'
		public Bernoulli vbool100_F;
		// Messages from uses of 'vbool341'
		public Bernoulli[] vbool341_uses_B;
		// Message from definition of 'vbool341'
		public Bernoulli vbool341_F;
		// Messages from uses of 'vbool61'
		public Bernoulli[] vbool61_uses_B;
		// The constant 'vBernoulli69'
		public Bernoulli vBernoulli69;
		// Message from definition of 'vbool61'
		public Bernoulli vbool61_F;
		// Messages from uses of 'vbool325'
		public Bernoulli[] vbool325_uses_B;
		// Message from definition of 'vbool325'
		public Bernoulli vbool325_F;
		// Messages from uses of 'vbool178'
		public Bernoulli[] vbool178_uses_B;
		// The constant 'vBernoulli186'
		public Bernoulli vBernoulli186;
		// Message from definition of 'vbool178'
		public Bernoulli vbool178_F;
		// Messages from uses of 'vbool467'
		public Bernoulli[] vbool467_uses_B;
		// Message from definition of 'vbool467'
		public Bernoulli vbool467_F;
		// Messages from uses of 'vbool53'
		public Bernoulli[] vbool53_uses_B;
		// The constant 'vBernoulli61'
		public Bernoulli vBernoulli61;
		// Message from definition of 'vbool53'
		public Bernoulli vbool53_F;
		// Messages from uses of 'vbool309'
		public Bernoulli[] vbool309_uses_B;
		// Message from definition of 'vbool309'
		public Bernoulli vbool309_F;
		// Messages from uses of 'vbool79'
		public Bernoulli[] vbool79_uses_B;
		// The constant 'vBernoulli87'
		public Bernoulli vBernoulli87;
		// Message from definition of 'vbool79'
		public Bernoulli vbool79_F;
		// Messages from uses of 'vbool317'
		public Bernoulli[] vbool317_uses_B;
		// Message from definition of 'vbool317'
		public Bernoulli vbool317_F;
		// Messages from uses of 'vbool170'
		public Bernoulli[] vbool170_uses_B;
		// The constant 'vBernoulli178'
		public Bernoulli vBernoulli178;
		// Message from definition of 'vbool170'
		public Bernoulli vbool170_F;
		// Messages from uses of 'vbool438'
		public Bernoulli[] vbool438_uses_B;
		// Message from definition of 'vbool438'
		public Bernoulli vbool438_F;
		// Messages from uses of 'vbool9'
		public Bernoulli[] vbool9_uses_B;
		// The constant 'vBernoulli17'
		public Bernoulli vBernoulli17;
		// Message from definition of 'vbool9'
		public Bernoulli vbool9_F;
		// Messages from uses of 'vbool293'
		public Bernoulli[] vbool293_uses_B;
		// Message from definition of 'vbool293'
		public Bernoulli vbool293_F;
		// Messages from uses of 'vbool87'
		public Bernoulli[] vbool87_uses_B;
		// The constant 'vBernoulli95'
		public Bernoulli vBernoulli95;
		// Message from definition of 'vbool87'
		public Bernoulli vbool87_F;
		// Messages from uses of 'vbool333'
		public Bernoulli[] vbool333_uses_B;
		// Message from definition of 'vbool333'
		public Bernoulli vbool333_F;
		// Messages from uses of 'vbool152'
		public Bernoulli[] vbool152_uses_B;
		// The constant 'vBernoulli160'
		public Bernoulli vBernoulli160;
		// Message from definition of 'vbool152'
		public Bernoulli vbool152_F;
		// Messages from uses of 'vbool430'
		public Bernoulli[] vbool430_uses_B;
		// Message from definition of 'vbool430'
		public Bernoulli vbool430_F;
		// Messages from uses of 'vbool468'
		public Bernoulli[] vbool468_uses_B;
		// Message from definition of 'vbool468'
		public Bernoulli vbool468_F;
		// Message to definition of 'vbool301'
		public Bernoulli vbool301_B;
		// Messages to uses of 'vbool27'
		public Bernoulli[] vbool27_uses_F;
		// Messages to uses of 'vbool35'
		public Bernoulli[] vbool35_uses_F;
		// Message to definition of 'vbool365'
		public Bernoulli vbool365_B;
		// Messages to uses of 'vbool139'
		public Bernoulli[] vbool139_uses_F;
		// The constant 'vBernoulli5'
		public Bernoulli vBernoulli5;
		// Message to definition of 'vbool349'
		public Bernoulli vbool349_B;
		// Messages to uses of 'vbool123'
		public Bernoulli[] vbool123_uses_F;
		// Message to definition of 'vbool357'
		public Bernoulli vbool357_B;
		// Messages to uses of 'vbool131'
		public Bernoulli[] vbool131_uses_F;
		// Message to definition of 'vbool341'
		public Bernoulli vbool341_B;
		// Messages to uses of 'vbool100'
		public Bernoulli[] vbool100_uses_F;
		// Message to definition of 'vbool325'
		public Bernoulli vbool325_B;
		// Messages to uses of 'vbool61'
		public Bernoulli[] vbool61_uses_F;
		// Message to definition of 'vbool467'
		public Bernoulli vbool467_B;
		// Messages to uses of 'vbool178'
		public Bernoulli[] vbool178_uses_F;
		// Message to definition of 'vbool309'
		public Bernoulli vbool309_B;
		// Messages to uses of 'vbool53'
		public Bernoulli[] vbool53_uses_F;
		// Message to definition of 'vbool317'
		public Bernoulli vbool317_B;
		// Messages to uses of 'vbool79'
		public Bernoulli[] vbool79_uses_F;
		// Message to definition of 'vbool438'
		public Bernoulli vbool438_B;
		// Messages to uses of 'vbool170'
		public Bernoulli[] vbool170_uses_F;
		// The constant 'vBernoulli6'
		public Bernoulli vBernoulli6;
		// Message to definition of 'vbool293'
		public Bernoulli vbool293_B;
		// Messages to uses of 'vbool9'
		public Bernoulli[] vbool9_uses_F;
		// Message to definition of 'vbool333'
		public Bernoulli vbool333_B;
		// Messages to uses of 'vbool87'
		public Bernoulli[] vbool87_uses_F;
		// Message to definition of 'vbool430'
		public Bernoulli vbool430_B;
		// Messages to uses of 'vbool152'
		public Bernoulli[] vbool152_uses_F;
		// Message to definition of 'vbool468'
		public Bernoulli vbool468_B;
		// Message to marginal of 'vbool301'
		public Bernoulli vbool301_marginal_B;
		// Message to marginal of 'vbool365'
		public Bernoulli vbool365_marginal_B;
		// Message to marginal of 'vbool349'
		public Bernoulli vbool349_marginal_B;
		// Message to marginal of 'vbool357'
		public Bernoulli vbool357_marginal_B;
		// Message to marginal of 'vbool341'
		public Bernoulli vbool341_marginal_B;
		// Message to marginal of 'vbool325'
		public Bernoulli vbool325_marginal_B;
		// Message to marginal of 'vbool467'
		public Bernoulli vbool467_marginal_B;
		// Message to marginal of 'vbool309'
		public Bernoulli vbool309_marginal_B;
		// Message to marginal of 'vbool317'
		public Bernoulli vbool317_marginal_B;
		// Message to marginal of 'vbool438'
		public Bernoulli vbool438_marginal_B;
		// Message to marginal of 'vbool293'
		public Bernoulli vbool293_marginal_B;
		// Message to marginal of 'vbool333'
		public Bernoulli vbool333_marginal_B;
		// Message to marginal of 'vbool430'
		public Bernoulli vbool430_marginal_B;
		// Message to marginal of 'vbool468'
		public Bernoulli vbool468_marginal_B;
		// Message to marginal of 'vbool35'
		public Bernoulli vbool35_marginal_B;
		// Message to marginal of 'vbool27'
		public Bernoulli vbool27_marginal_B;
		// Message to marginal of 'vbool139'
		public Bernoulli vbool139_marginal_B;
		// Message to marginal of 'vbool123'
		public Bernoulli vbool123_marginal_B;
		// Message to marginal of 'vbool131'
		public Bernoulli vbool131_marginal_B;
		// Message to marginal of 'vbool100'
		public Bernoulli vbool100_marginal_B;
		// Message to marginal of 'vbool61'
		public Bernoulli vbool61_marginal_B;
		// Message to marginal of 'vbool178'
		public Bernoulli vbool178_marginal_B;
		// Message to marginal of 'vbool53'
		public Bernoulli vbool53_marginal_B;
		// Message to marginal of 'vbool79'
		public Bernoulli vbool79_marginal_B;
		// Message to marginal of 'vbool170'
		public Bernoulli vbool170_marginal_B;
		// Message to marginal of 'vbool9'
		public Bernoulli vbool9_marginal_B;
		// Message to marginal of 'vbool87'
		public Bernoulli vbool87_marginal_B;
		// Message to marginal of 'vbool152'
		public Bernoulli vbool152_marginal_B;
		#endregion

		#region Methods
		/// <summary>
		/// Configures constant values that will not change during the lifetime of the class.
		/// </summary>
		/// <remarks>
		/// This method should be called once only after the class is instantiated.  In future, it will likely become
		/// the class constructor.
		/// </remarks>
		public void Reset()
		{
			// Create array for 'vbool35_uses' backwards messages.
			this.vbool35_uses_B = new Bernoulli[1];
			this.vBernoulli43 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool35_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli43);
			}
			this.vbool35_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli43);
			// Message to 'vbool35' from Random factor
			this.vbool35_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli43);
			// Create array for 'vbool27_uses' backwards messages.
			this.vbool27_uses_B = new Bernoulli[2];
			this.vBernoulli35 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool27_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli35);
			}
			this.vbool27_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli35);
			// Message to 'vbool27' from Random factor
			this.vbool27_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli35);
			// Create array for 'vbool301_uses' backwards messages.
			this.vbool301_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool301_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool301_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool139_uses' backwards messages.
			this.vbool139_uses_B = new Bernoulli[3];
			this.vBernoulli147 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<3; _ind0++)
			{
				this.vbool139_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli147);
			}
			this.vbool139_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli147);
			// Message to 'vbool139' from Random factor
			this.vbool139_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli147);
			// Create array for 'vbool365_uses' backwards messages.
			this.vbool365_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool365_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool365_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool123_uses' backwards messages.
			this.vbool123_uses_B = new Bernoulli[2];
			this.vBernoulli131 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool123_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli131);
			}
			this.vbool123_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli131);
			// Message to 'vbool123' from Random factor
			this.vbool123_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli131);
			// Create array for 'vbool349_uses' backwards messages.
			this.vbool349_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool349_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool349_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool131_uses' backwards messages.
			this.vbool131_uses_B = new Bernoulli[2];
			this.vBernoulli139 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool131_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli139);
			}
			this.vbool131_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli139);
			// Message to 'vbool131' from Random factor
			this.vbool131_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli139);
			// Create array for 'vbool357_uses' backwards messages.
			this.vbool357_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool357_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool357_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool100_uses' backwards messages.
			this.vbool100_uses_B = new Bernoulli[2];
			this.vBernoulli108 = new Bernoulli(0.01);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool100_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli108);
			}
			this.vbool100_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli108);
			// Message to 'vbool100' from Random factor
			this.vbool100_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli108);
			// Create array for 'vbool341_uses' backwards messages.
			this.vbool341_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool341_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool341_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool61_uses' backwards messages.
			this.vbool61_uses_B = new Bernoulli[3];
			this.vBernoulli69 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<3; _ind0++)
			{
				this.vbool61_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli69);
			}
			this.vbool61_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli69);
			// Message to 'vbool61' from Random factor
			this.vbool61_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli69);
			// Create array for 'vbool325_uses' backwards messages.
			this.vbool325_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool325_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool325_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool178_uses' backwards messages.
			this.vbool178_uses_B = new Bernoulli[2];
			this.vBernoulli186 = new Bernoulli(0.01);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool178_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli186);
			}
			this.vbool178_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli186);
			// Message to 'vbool178' from Random factor
			this.vbool178_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli186);
			// Create array for 'vbool467_uses' backwards messages.
			this.vbool467_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool467_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool467_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool53_uses' backwards messages.
			this.vbool53_uses_B = new Bernoulli[2];
			this.vBernoulli61 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool53_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli61);
			}
			this.vbool53_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli61);
			// Message to 'vbool53' from Random factor
			this.vbool53_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli61);
			// Create array for 'vbool309_uses' backwards messages.
			this.vbool309_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool309_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool309_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool79_uses' backwards messages.
			this.vbool79_uses_B = new Bernoulli[2];
			this.vBernoulli87 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool79_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli87);
			}
			this.vbool79_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli87);
			// Message to 'vbool79' from Random factor
			this.vbool79_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli87);
			// Create array for 'vbool317_uses' backwards messages.
			this.vbool317_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool317_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool317_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool170_uses' backwards messages.
			this.vbool170_uses_B = new Bernoulli[2];
			this.vBernoulli178 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool170_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli178);
			}
			this.vbool170_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli178);
			// Message to 'vbool170' from Random factor
			this.vbool170_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli178);
			// Create array for 'vbool438_uses' backwards messages.
			this.vbool438_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool438_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool438_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool9_uses' backwards messages.
			this.vbool9_uses_B = new Bernoulli[1];
			this.vBernoulli17 = new Bernoulli(0.5);
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool9_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli17);
			}
			this.vbool9_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli17);
			// Message to 'vbool9' from Random factor
			this.vbool9_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli17);
			// Create array for 'vbool293_uses' backwards messages.
			this.vbool293_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool293_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool293_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool87_uses' backwards messages.
			this.vbool87_uses_B = new Bernoulli[2];
			this.vBernoulli95 = new Bernoulli(0.01);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool87_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli95);
			}
			this.vbool87_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli95);
			// Message to 'vbool87' from Random factor
			this.vbool87_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli95);
			// Create array for 'vbool333_uses' backwards messages.
			this.vbool333_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool333_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool333_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool152_uses' backwards messages.
			this.vbool152_uses_B = new Bernoulli[2];
			this.vBernoulli160 = new Bernoulli(0.01);
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool152_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli160);
			}
			this.vbool152_F = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli160);
			// Message to 'vbool152' from Random factor
			this.vbool152_F = UnaryOp<bool>.RandomAverageConditional<Bernoulli>(this.vBernoulli160);
			// Create array for 'vbool430_uses' backwards messages.
			this.vbool430_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool430_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool430_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool468_uses' backwards messages.
			this.vbool468_uses_B = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool468_uses_B[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			}
			this.vbool468_F = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool301_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool27_uses' forwards messages.
			this.vbool27_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool27_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli35);
			}
			// Create array for 'vbool35_uses' forwards messages.
			this.vbool35_uses_F = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool35_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli43);
			}
			// Message to 'vbool35_uses' from UsesEqualDef factor
			this.vbool35_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool35_uses_B, this.vbool35_F, 0, this.vbool35_uses_F[0]);
			this.vbool365_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool139_uses' forwards messages.
			this.vbool139_uses_F = new Bernoulli[3];
			for(int _ind0 = 0; _ind0<3; _ind0++)
			{
				this.vbool139_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli147);
			}
			this.vBernoulli5 = new Bernoulli(0.9);
			// Message to 'vbool301_uses' from EqualRandom factor
			this.vbool301_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool365_uses' from EqualRandom factor
			this.vbool365_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool349_uses' from EqualRandom factor
			this.vbool349_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool357_uses' from EqualRandom factor
			this.vbool357_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool341_uses' from EqualRandom factor
			this.vbool341_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool325_uses' from EqualRandom factor
			this.vbool325_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool309_uses' from EqualRandom factor
			this.vbool309_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool317_uses' from EqualRandom factor
			this.vbool317_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool438_uses' from EqualRandom factor
			this.vbool438_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool293_uses' from EqualRandom factor
			this.vbool293_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool333_uses' from EqualRandom factor
			this.vbool333_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool430_uses' from EqualRandom factor
			this.vbool430_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli5);
			// Message to 'vbool301' from ReplicateWithMarginal factor
			this.vbool301_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool301_uses_B, this.vbool301_B);
			// Message to 'vbool27_uses' from AreEqual factor
			this.vbool27_uses_B[0] = BooleanAreEqualOp.BAverageConditional(this.vbool301_B, this.vbool35_uses_F[0]);
			// Message to 'vbool365' from ReplicateWithMarginal factor
			this.vbool365_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool365_uses_B, this.vbool365_B);
			// Message to 'vbool27_uses' from UsesEqualDef factor
			this.vbool27_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool27_uses_B, this.vbool27_F, 1, this.vbool27_uses_F[1]);
			// Message to 'vbool139_uses' from AreEqual factor
			this.vbool139_uses_B[0] = BooleanAreEqualOp.AAverageConditional(this.vbool365_B, this.vbool27_uses_F[1]);
			this.vbool349_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool349' from ReplicateWithMarginal factor
			this.vbool349_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool349_uses_B, this.vbool349_B);
			// Create array for 'vbool123_uses' forwards messages.
			this.vbool123_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool123_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli131);
			}
			this.vbool357_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool357' from ReplicateWithMarginal factor
			this.vbool357_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool357_uses_B, this.vbool357_B);
			// Create array for 'vbool131_uses' forwards messages.
			this.vbool131_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool131_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli139);
			}
			this.vbool341_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool341' from ReplicateWithMarginal factor
			this.vbool341_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool341_uses_B, this.vbool341_B);
			// Create array for 'vbool100_uses' forwards messages.
			this.vbool100_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool100_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli108);
			}
			this.vbool325_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool325' from ReplicateWithMarginal factor
			this.vbool325_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool325_uses_B, this.vbool325_B);
			// Create array for 'vbool61_uses' forwards messages.
			this.vbool61_uses_F = new Bernoulli[3];
			for(int _ind0 = 0; _ind0<3; _ind0++)
			{
				this.vbool61_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli69);
			}
			this.vbool467_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Create array for 'vbool178_uses' forwards messages.
			this.vbool178_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool178_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli186);
			}
			this.vbool309_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool309' from ReplicateWithMarginal factor
			this.vbool309_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool309_uses_B, this.vbool309_B);
			// Create array for 'vbool53_uses' forwards messages.
			this.vbool53_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool53_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli61);
			}
			this.vbool317_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool317' from ReplicateWithMarginal factor
			this.vbool317_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool317_uses_B, this.vbool317_B);
			// Create array for 'vbool79_uses' forwards messages.
			this.vbool79_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool79_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli87);
			}
			this.vbool438_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool438' from ReplicateWithMarginal factor
			this.vbool438_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool438_uses_B, this.vbool438_B);
			// Create array for 'vbool170_uses' forwards messages.
			this.vbool170_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool170_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli178);
			}
			this.vBernoulli6 = new Bernoulli(0.9);
			// Message to 'vbool467_uses' from EqualRandom factor
			this.vbool467_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli6);
			// Message to 'vbool468_uses' from EqualRandom factor
			this.vbool468_uses_B[0] = ConstrainEqualRandomOp<bool>.ValueAverageConditional<Bernoulli>(this.vBernoulli6);
			// Message to 'vbool467' from ReplicateWithMarginal factor
			this.vbool467_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool467_uses_B, this.vbool467_B);
			this.vbool293_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool293' from ReplicateWithMarginal factor
			this.vbool293_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool293_uses_B, this.vbool293_B);
			// Create array for 'vbool9_uses' forwards messages.
			this.vbool9_uses_F = new Bernoulli[1];
			for(int _ind0 = 0; _ind0<1; _ind0++)
			{
				this.vbool9_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli17);
			}
			// Message to 'vbool9_uses' from UsesEqualDef factor
			this.vbool9_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool9_uses_B, this.vbool9_F, 0, this.vbool9_uses_F[0]);
			// Message to 'vbool53_uses' from AreEqual factor
			this.vbool53_uses_B[1] = BooleanAreEqualOp.BAverageConditional(this.vbool293_B, this.vbool9_uses_F[0]);
			// Message to 'vbool53_uses' from UsesEqualDef factor
			this.vbool53_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool53_uses_B, this.vbool53_F, 0, this.vbool53_uses_F[0]);
			// Message to 'vbool61_uses' from AreEqual factor
			this.vbool61_uses_B[1] = BooleanAreEqualOp.AAverageConditional(this.vbool309_B, this.vbool53_uses_F[0]);
			this.vbool333_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool333' from ReplicateWithMarginal factor
			this.vbool333_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool333_uses_B, this.vbool333_B);
			// Create array for 'vbool87_uses' forwards messages.
			this.vbool87_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool87_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli95);
			}
			this.vbool430_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool430' from ReplicateWithMarginal factor
			this.vbool430_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool430_uses_B, this.vbool430_B);
			// Create array for 'vbool152_uses' forwards messages.
			this.vbool152_uses_F = new Bernoulli[2];
			for(int _ind0 = 0; _ind0<2; _ind0++)
			{
				this.vbool152_uses_F[_ind0] = ArrayHelper.MakeUniform<Bernoulli>(this.vBernoulli160);
			}
			this.vbool468_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			// Message to 'vbool468' from ReplicateWithMarginal factor
			this.vbool468_B = ReplicateOp.DefAverageConditional<Bernoulli>(this.vbool468_uses_B, this.vbool468_B);
		}

		/// <summary>
		/// Creates message arrays and initialises their values ready for inference to be performed.
		/// </summary>
		/// <remarks>
		/// This method should be called once each time inference is performed. Since the initialisation
		/// procedure normally dependson external values such as priors and array sizes, all external
		/// values must be set before calling this method.
		/// 
		/// As well as initialising message arrays, this method also performs any message passing that
		/// the scheduler determines need only be carried out once.
		/// </remarks>
		public void Initialise()
		{
			this.vbool301_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool365_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool349_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool357_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool341_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool325_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool467_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool309_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool317_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool438_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool293_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool333_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool430_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool468_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(new Bernoulli());
			this.vbool35_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli43);
			this.vbool27_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli35);
			this.vbool139_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli147);
			this.vbool123_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli131);
			this.vbool131_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli139);
			this.vbool100_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli108);
			this.vbool61_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli69);
			this.vbool178_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli186);
			this.vbool53_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli61);
			this.vbool79_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli87);
			this.vbool170_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli178);
			this.vbool9_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli17);
			this.vbool87_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli95);
			this.vbool152_marginal_B = ArrayHelper.MakeUniform<Bernoulli>(vBernoulli160);
		}

		/// <summary>
		/// Performs one iteration of inference.
		/// </summary>
		/// <remarks>
		/// This method should be called multiple times, after calling Initialise(), in order to perform
		/// multiple iterations of message passing.  You can call methods to retrieve posterior marginals
		/// at any time - the returned marginal will be the estimated marginal given the current state of
		/// the message passing algorithm.  This can be useful for monitoring convergence of the algorithm.
		/// 
		/// Where the scheduler has determined inference can be performed without iteration, this method
		/// does nothing.
		/// </remarks>
		public void Update()
		{
			// Message to 'vbool139_uses' from UsesEqualDef factor
			this.vbool139_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool139_uses_B, this.vbool139_F, 1, this.vbool139_uses_F[1]);
			// Message to 'vbool123_uses' from AreEqual factor
			this.vbool123_uses_B[0] = BooleanAreEqualOp.BAverageConditional(this.vbool349_B, this.vbool139_uses_F[1]);
			// Message to 'vbool123_uses' from UsesEqualDef factor
			this.vbool123_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool123_uses_B, this.vbool123_F, 1, this.vbool123_uses_F[1]);
			// Message to 'vbool100_uses' from AreEqual factor
			this.vbool100_uses_B[0] = BooleanAreEqualOp.AAverageConditional(this.vbool341_B, this.vbool123_uses_F[1]);
			// Message to 'vbool100_uses' from UsesEqualDef factor
			this.vbool100_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool100_uses_B, this.vbool100_F, 1, this.vbool100_uses_F[1]);
			// Message to 'vbool178_uses' from AreEqual factor
			this.vbool178_uses_B[0] = BooleanAreEqualOp.BAverageConditional(this.vbool467_B, this.vbool100_uses_F[1]);
			// Message to 'vbool178_uses' from UsesEqualDef factor
			this.vbool178_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool178_uses_B, this.vbool178_F, 1, this.vbool178_uses_F[1]);
			// Message to 'vbool170_uses' from AreEqual factor
			this.vbool170_uses_B[0] = BooleanAreEqualOp.BAverageConditional(this.vbool438_B, this.vbool178_uses_F[1]);
			// Message to 'vbool170_uses' from UsesEqualDef factor
			this.vbool170_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool170_uses_B, this.vbool170_F, 1, this.vbool170_uses_F[1]);
			// Message to 'vbool152_uses' from AreEqual factor
			this.vbool152_uses_B[0] = BooleanAreEqualOp.AAverageConditional(this.vbool430_B, this.vbool170_uses_F[1]);
			// Message to 'vbool152_uses' from UsesEqualDef factor
			this.vbool152_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool152_uses_B, this.vbool152_F, 1, this.vbool152_uses_F[1]);
			// Message to 'vbool87_uses' from AreEqual factor
			this.vbool87_uses_B[1] = BooleanAreEqualOp.AAverageConditional(this.vbool468_B, this.vbool152_uses_F[1]);
			// Message to 'vbool87_uses' from UsesEqualDef factor
			this.vbool87_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool87_uses_B, this.vbool87_F, 0, this.vbool87_uses_F[0]);
			// Message to 'vbool79_uses' from AreEqual factor
			this.vbool79_uses_B[1] = BooleanAreEqualOp.BAverageConditional(this.vbool333_B, this.vbool87_uses_F[0]);
			// Message to 'vbool79_uses' from UsesEqualDef factor
			this.vbool79_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool79_uses_B, this.vbool79_F, 0, this.vbool79_uses_F[0]);
			// Message to 'vbool61_uses' from AreEqual factor
			this.vbool61_uses_B[2] = BooleanAreEqualOp.AAverageConditional(this.vbool317_B, this.vbool79_uses_F[0]);
			// Message to 'vbool61_uses' from UsesEqualDef factor
			this.vbool61_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool61_uses_B, this.vbool61_F, 0, this.vbool61_uses_F[0]);
			// Message to 'vbool131_uses' from AreEqual factor
			this.vbool131_uses_B[1] = BooleanAreEqualOp.BAverageConditional(this.vbool325_B, this.vbool61_uses_F[0]);
			// Message to 'vbool131_uses' from UsesEqualDef factor
			this.vbool131_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool131_uses_B, this.vbool131_F, 0, this.vbool131_uses_F[0]);
			// Message to 'vbool139_uses' from AreEqual factor
			this.vbool139_uses_B[2] = BooleanAreEqualOp.AAverageConditional(this.vbool357_B, this.vbool131_uses_F[0]);
			// Message to 'vbool139_uses' from UsesEqualDef factor
			this.vbool139_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool139_uses_B, this.vbool139_F, 0, this.vbool139_uses_F[0]);
			// Message to 'vbool27_uses' from AreEqual factor
			this.vbool27_uses_B[1] = BooleanAreEqualOp.BAverageConditional(this.vbool365_B, this.vbool139_uses_F[0]);
			// Message to 'vbool27_marginal' from UsesEqualDef factor
			this.vbool27_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool27_uses_B, this.vbool27_F, this.vbool27_marginal_B);
			// Message to 'vbool365' from AreEqual factor
			this.vbool365_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool139_uses_F[0], this.vbool27_uses_F[1]);
			// Message to 'vbool365_marginal' from ReplicateWithMarginal factor
			this.vbool365_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool365_uses_B, this.vbool365_F, this.vbool365_marginal_B);
			// Message to 'vbool27_uses' from UsesEqualDef factor
			this.vbool27_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool27_uses_B, this.vbool27_F, 0, this.vbool27_uses_F[0]);
			// Message to 'vbool35_uses' from AreEqual factor
			this.vbool35_uses_B[0] = BooleanAreEqualOp.AAverageConditional(this.vbool301_B, this.vbool27_uses_F[0]);
			// Message to 'vbool35_marginal' from UsesEqualDef factor
			this.vbool35_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool35_uses_B, this.vbool35_F, this.vbool35_marginal_B);
			// Message to 'vbool301' from AreEqual factor
			this.vbool301_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool35_uses_F[0], this.vbool27_uses_F[0]);
			// Message to 'vbool301_marginal' from ReplicateWithMarginal factor
			this.vbool301_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool301_uses_B, this.vbool301_F, this.vbool301_marginal_B);
			// Message to 'vbool139_uses' from UsesEqualDef factor
			this.vbool139_uses_F[2] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool139_uses_B, this.vbool139_F, 2, this.vbool139_uses_F[2]);
			// Message to 'vbool131_uses' from AreEqual factor
			this.vbool131_uses_B[0] = BooleanAreEqualOp.BAverageConditional(this.vbool357_B, this.vbool139_uses_F[2]);
			// Message to 'vbool131_marginal' from UsesEqualDef factor
			this.vbool131_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool131_uses_B, this.vbool131_F, this.vbool131_marginal_B);
			// Message to 'vbool357' from AreEqual factor
			this.vbool357_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool139_uses_F[2], this.vbool131_uses_F[0]);
			// Message to 'vbool357_marginal' from ReplicateWithMarginal factor
			this.vbool357_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool357_uses_B, this.vbool357_F, this.vbool357_marginal_B);
			// Message to 'vbool131_uses' from UsesEqualDef factor
			this.vbool131_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool131_uses_B, this.vbool131_F, 1, this.vbool131_uses_F[1]);
			// Message to 'vbool61_uses' from AreEqual factor
			this.vbool61_uses_B[0] = BooleanAreEqualOp.AAverageConditional(this.vbool325_B, this.vbool131_uses_F[1]);
			// Message to 'vbool61_marginal' from UsesEqualDef factor
			this.vbool61_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool61_uses_B, this.vbool61_F, this.vbool61_marginal_B);
			// Message to 'vbool325' from AreEqual factor
			this.vbool325_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool61_uses_F[0], this.vbool131_uses_F[1]);
			// Message to 'vbool325_marginal' from ReplicateWithMarginal factor
			this.vbool325_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool325_uses_B, this.vbool325_F, this.vbool325_marginal_B);
			// Message to 'vbool61_uses' from UsesEqualDef factor
			this.vbool61_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool61_uses_B, this.vbool61_F, 1, this.vbool61_uses_F[1]);
			// Message to 'vbool53_uses' from AreEqual factor
			this.vbool53_uses_B[0] = BooleanAreEqualOp.BAverageConditional(this.vbool309_B, this.vbool61_uses_F[1]);
			// Message to 'vbool53_marginal' from UsesEqualDef factor
			this.vbool53_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool53_uses_B, this.vbool53_F, this.vbool53_marginal_B);
			// Message to 'vbool309' from AreEqual factor
			this.vbool309_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool61_uses_F[1], this.vbool53_uses_F[0]);
			// Message to 'vbool309_marginal' from ReplicateWithMarginal factor
			this.vbool309_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool309_uses_B, this.vbool309_F, this.vbool309_marginal_B);
			// Message to 'vbool61_uses' from UsesEqualDef factor
			this.vbool61_uses_F[2] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool61_uses_B, this.vbool61_F, 2, this.vbool61_uses_F[2]);
			// Message to 'vbool79_uses' from AreEqual factor
			this.vbool79_uses_B[0] = BooleanAreEqualOp.BAverageConditional(this.vbool317_B, this.vbool61_uses_F[2]);
			// Message to 'vbool79_marginal' from UsesEqualDef factor
			this.vbool79_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool79_uses_B, this.vbool79_F, this.vbool79_marginal_B);
			// Message to 'vbool317' from AreEqual factor
			this.vbool317_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool61_uses_F[2], this.vbool79_uses_F[0]);
			// Message to 'vbool317_marginal' from ReplicateWithMarginal factor
			this.vbool317_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool317_uses_B, this.vbool317_F, this.vbool317_marginal_B);
			// Message to 'vbool53_uses' from UsesEqualDef factor
			this.vbool53_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool53_uses_B, this.vbool53_F, 1, this.vbool53_uses_F[1]);
			// Message to 'vbool9_uses' from AreEqual factor
			this.vbool9_uses_B[0] = BooleanAreEqualOp.AAverageConditional(this.vbool293_B, this.vbool53_uses_F[1]);
			// Message to 'vbool9_marginal' from UsesEqualDef factor
			this.vbool9_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool9_uses_B, this.vbool9_F, this.vbool9_marginal_B);
			// Message to 'vbool293' from AreEqual factor
			this.vbool293_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool9_uses_F[0], this.vbool53_uses_F[1]);
			// Message to 'vbool293_marginal' from ReplicateWithMarginal factor
			this.vbool293_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool293_uses_B, this.vbool293_F, this.vbool293_marginal_B);
			// Message to 'vbool79_uses' from UsesEqualDef factor
			this.vbool79_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool79_uses_B, this.vbool79_F, 1, this.vbool79_uses_F[1]);
			// Message to 'vbool87_uses' from AreEqual factor
			this.vbool87_uses_B[0] = BooleanAreEqualOp.AAverageConditional(this.vbool333_B, this.vbool79_uses_F[1]);
			// Message to 'vbool87_marginal' from UsesEqualDef factor
			this.vbool87_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool87_uses_B, this.vbool87_F, this.vbool87_marginal_B);
			// Message to 'vbool333' from AreEqual factor
			this.vbool333_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool87_uses_F[0], this.vbool79_uses_F[1]);
			// Message to 'vbool333_marginal' from ReplicateWithMarginal factor
			this.vbool333_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool333_uses_B, this.vbool333_F, this.vbool333_marginal_B);
			// Message to 'vbool87_uses' from UsesEqualDef factor
			this.vbool87_uses_F[1] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool87_uses_B, this.vbool87_F, 1, this.vbool87_uses_F[1]);
			// Message to 'vbool152_uses' from AreEqual factor
			this.vbool152_uses_B[1] = BooleanAreEqualOp.BAverageConditional(this.vbool468_B, this.vbool87_uses_F[1]);
			// Message to 'vbool152_marginal' from UsesEqualDef factor
			this.vbool152_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool152_uses_B, this.vbool152_F, this.vbool152_marginal_B);
			// Message to 'vbool468' from AreEqual factor
			this.vbool468_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool87_uses_F[1], this.vbool152_uses_F[1]);
			// Message to 'vbool468_marginal' from ReplicateWithMarginal factor
			this.vbool468_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool468_uses_B, this.vbool468_F, this.vbool468_marginal_B);
			// Message to 'vbool152_uses' from UsesEqualDef factor
			this.vbool152_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool152_uses_B, this.vbool152_F, 0, this.vbool152_uses_F[0]);
			// Message to 'vbool170_uses' from AreEqual factor
			this.vbool170_uses_B[1] = BooleanAreEqualOp.BAverageConditional(this.vbool430_B, this.vbool152_uses_F[0]);
			// Message to 'vbool170_marginal' from UsesEqualDef factor
			this.vbool170_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool170_uses_B, this.vbool170_F, this.vbool170_marginal_B);
			// Message to 'vbool430' from AreEqual factor
			this.vbool430_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool152_uses_F[0], this.vbool170_uses_F[1]);
			// Message to 'vbool430_marginal' from ReplicateWithMarginal factor
			this.vbool430_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool430_uses_B, this.vbool430_F, this.vbool430_marginal_B);
			// Message to 'vbool170_uses' from UsesEqualDef factor
			this.vbool170_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool170_uses_B, this.vbool170_F, 0, this.vbool170_uses_F[0]);
			// Message to 'vbool178_uses' from AreEqual factor
			this.vbool178_uses_B[1] = BooleanAreEqualOp.AAverageConditional(this.vbool438_B, this.vbool170_uses_F[0]);
			// Message to 'vbool178_marginal' from UsesEqualDef factor
			this.vbool178_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool178_uses_B, this.vbool178_F, this.vbool178_marginal_B);
			// Message to 'vbool438' from AreEqual factor
			this.vbool438_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool178_uses_F[1], this.vbool170_uses_F[0]);
			// Message to 'vbool438_marginal' from ReplicateWithMarginal factor
			this.vbool438_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool438_uses_B, this.vbool438_F, this.vbool438_marginal_B);
			// Message to 'vbool178_uses' from UsesEqualDef factor
			this.vbool178_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool178_uses_B, this.vbool178_F, 0, this.vbool178_uses_F[0]);
			// Message to 'vbool100_uses' from AreEqual factor
			this.vbool100_uses_B[1] = BooleanAreEqualOp.AAverageConditional(this.vbool467_B, this.vbool178_uses_F[0]);
			// Message to 'vbool100_marginal' from UsesEqualDef factor
			this.vbool100_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool100_uses_B, this.vbool100_F, this.vbool100_marginal_B);
			// Message to 'vbool467' from AreEqual factor
			this.vbool467_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool100_uses_F[1], this.vbool178_uses_F[0]);
			// Message to 'vbool467_marginal' from ReplicateWithMarginal factor
			this.vbool467_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool467_uses_B, this.vbool467_F, this.vbool467_marginal_B);
			// Message to 'vbool100_uses' from UsesEqualDef factor
			this.vbool100_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool100_uses_B, this.vbool100_F, 0, this.vbool100_uses_F[0]);
			// Message to 'vbool123_uses' from AreEqual factor
			this.vbool123_uses_B[1] = BooleanAreEqualOp.BAverageConditional(this.vbool341_B, this.vbool100_uses_F[0]);
			// Message to 'vbool123_marginal' from UsesEqualDef factor
			this.vbool123_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool123_uses_B, this.vbool123_F, this.vbool123_marginal_B);
			// Message to 'vbool341' from AreEqual factor
			this.vbool341_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool100_uses_F[0], this.vbool123_uses_F[1]);
			// Message to 'vbool341_marginal' from ReplicateWithMarginal factor
			this.vbool341_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool341_uses_B, this.vbool341_F, this.vbool341_marginal_B);
			// Message to 'vbool123_uses' from UsesEqualDef factor
			this.vbool123_uses_F[0] = UsesEqualDefOp.UsesAverageConditional<Bernoulli>(this.vbool123_uses_B, this.vbool123_F, 0, this.vbool123_uses_F[0]);
			// Message to 'vbool139_uses' from AreEqual factor
			this.vbool139_uses_B[1] = BooleanAreEqualOp.AAverageConditional(this.vbool349_B, this.vbool123_uses_F[0]);
			// Message to 'vbool139_marginal' from UsesEqualDef factor
			this.vbool139_marginal_B = UsesEqualDefOp.MarginalAverageConditional<Bernoulli>(this.vbool139_uses_B, this.vbool139_F, this.vbool139_marginal_B);
			// Message to 'vbool349' from AreEqual factor
			this.vbool349_F = BooleanAreEqualOp.AreEqualAverageConditional(this.vbool139_uses_F[1], this.vbool123_uses_F[0]);
			// Message to 'vbool349_marginal' from ReplicateWithMarginal factor
			this.vbool349_marginal_B = ReplicateOp.MarginalAverageConditional<Bernoulli>(this.vbool349_uses_B, this.vbool349_F, this.vbool349_marginal_B);
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool27' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool27Marginal()
		{
			return this.vbool27_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool365' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool365Marginal()
		{
			return this.vbool365_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool35' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool35Marginal()
		{
			return this.vbool35_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool301' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool301Marginal()
		{
			return this.vbool301_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool131' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool131Marginal()
		{
			return this.vbool131_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool357' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool357Marginal()
		{
			return this.vbool357_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool61' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool61Marginal()
		{
			return this.vbool61_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool325' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool325Marginal()
		{
			return this.vbool325_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool53' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool53Marginal()
		{
			return this.vbool53_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool309' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool309Marginal()
		{
			return this.vbool309_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool79' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool79Marginal()
		{
			return this.vbool79_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool317' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool317Marginal()
		{
			return this.vbool317_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool9' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool9Marginal()
		{
			return this.vbool9_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool293' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool293Marginal()
		{
			return this.vbool293_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool87' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool87Marginal()
		{
			return this.vbool87_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool333' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool333Marginal()
		{
			return this.vbool333_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool152' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool152Marginal()
		{
			return this.vbool152_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool468' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool468Marginal()
		{
			return this.vbool468_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool170' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool170Marginal()
		{
			return this.vbool170_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool430' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool430Marginal()
		{
			return this.vbool430_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool178' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool178Marginal()
		{
			return this.vbool178_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool438' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool438Marginal()
		{
			return this.vbool438_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool100' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool100Marginal()
		{
			return this.vbool100_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool467' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool467Marginal()
		{
			return this.vbool467_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool123' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool123Marginal()
		{
			return this.vbool123_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool341' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool341Marginal()
		{
			return this.vbool341_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool139' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool139Marginal()
		{
			return this.vbool139_marginal_B;
		}

		/// <summary>
		/// Returns the marginal distribution for 'vbool349' given by the current state of the
		/// message passing algorithm.
		/// </summary>
		/// <returns>The marginal distribution</returns>
		public Bernoulli Vbool349Marginal()
		{
			return this.vbool349_marginal_B;
		}

		#endregion

	}

}
